home *** CD-ROM | disk | FTP | other *** search
/ Acorn RISC PD-CD 1 / Acorn RISC PD-CD 1.iso / languages / forth / _forth / notes < prev    next >
Text File  |  1991-04-15  |  3KB  |  74 lines

  1. Notes: Forth97
  2.  
  3.  I am attempting to introduce FORTH multitasking into both the windowing and non-windowing versions of the kernel.
  4.  
  5.  At present check the PROCmultitask procedure for details of what is happeninh.
  6.  
  7.   Note: Processes are stored in a word that gets rotated
  8.  
  9.         ABCDEFGH there are eight tasks running in this case
  10.                  H will run first the back to A.
  11.                  when a task exits it deletes itself from the
  12.                  task list.
  13.                  When a new task starts it puts itself
  14.                  on the first available nibble.
  15.  
  16. Process table Format
  17.  
  18.      Word Number | Description
  19.           1      | Pointer to header that holds task name
  20.           2      | return stack pointer for this task
  21.           3      | data stack pointer for this task
  22.           4      | FORTH instruction pointer
  23.  
  24. Note: task 0 is considered to be always running ( base )
  25.       any other task runs as a child of the Fork keyword and
  26.       is time sliced with all other processes.
  27.  
  28. All processes get equal time slices.
  29.  
  30. Forth 106 onwards : 24th March 1991
  31.  
  32.   More processes are now runnable.. 8 in fact
  33.  
  34.   Working on the load routine -
  35.     it should load a file immediately - not wait until end of the current line
  36.     has been parsed.
  37.  
  38.     It will enable the forth interpreter to bootstrap the line editor, this is
  39.     important because it will enable FULL multitasking.. including background
  40.     tasks. incidently it will enable a user to customise the editor to
  41.     whatever format they like.
  42.  
  43.   Inline: has had the load section ripped out.
  44.  
  45. Forth107: 31st March 1991
  46.  
  47.    8 processes runnable.
  48.  
  49.    Forthc now loads the inline parser from disk. ( written in forth )
  50.  
  51.    It now multitasks properly and has the abort etc vectors trapped so that
  52.    accessing dodgy locations will not crash the interpreter. Note: that if
  53.    someone actualy patched the code with a direct poke unpredictable things
  54.    could happen. ( try the following: -1 editv ! as an example ).
  55.  
  56.    I am still testing the new fork command routine. it no longer scans the
  57.    inline buffer for the task name. it now gets the command address from the
  58.    stack.
  59.  
  60. Forth110 - 15th April 1991
  61.  
  62.     No major changes. Just added a file depth of 7 to the load function.
  63.     It is now possible to have multiple files that chain together.
  64.     In the non wimp version there was/is a strange bug.
  65.       - a file ftest would crash the wimp version of forth.
  66.         Strange thing is the individual parts of the original did not
  67.         cause problems. Even when nested as deep as the ftest ( 3 levels )
  68.         I changed the ftest file and now it runs !!!!
  69.         Other point is that it uses EXACTLY the same code as the non wimp
  70.         version and that runs OK. got me foxed !!
  71.     The problem doesnt exist in the NON wimp version. - I think this is
  72.     acceptable because the wimp is only for rapid development - not for
  73.     final production.
  74.